package com.journal.book.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.journal.common.annotation.Excel;
import com.journal.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 期刊定位记录对象 journal_location
 *
 * @author mobin
 * @date 2025-01-XX
 */
public class JournalLocation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 期刊编号或名称 */
    @Excel(name = "期刊编号/名称")
    private String journalCode;

    /** 书架ID */
    @Excel(name = "书架ID")
    private String shelfId;

    /** 书架侧面 */
    @Excel(name = "书架侧面")
    private String sideId;

    /** 书架层数 */
    @Excel(name = "书架层数")
    private Long level;

    /** 定位时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "定位时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date locateTime;

    /** 用户唯一标识（openid或unionid） */
    @Excel(name = "用户标识")
    private String userIdentifier;

    /** IP地址 */
    @Excel(name = "IP地址")
    private String ipAddress;

    /** IP所在地区 */
    @Excel(name = "IP所在地区")
    private String location;

    /** 手机品牌 */
    @Excel(name = "手机品牌")
    private String brand;

    /** 设备型号 */
    @Excel(name = "设备型号")
    private String model;

    /** 操作系统名称 */
    @Excel(name = "操作系统")
    private String osName;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setJournalCode(String journalCode)
    {
        this.journalCode = journalCode;
    }

    public String getJournalCode()
    {
        return journalCode;
    }

    public void setShelfId(String shelfId)
    {
        this.shelfId = shelfId;
    }

    public String getShelfId()
    {
        return shelfId;
    }

    public void setSideId(String sideId)
    {
        this.sideId = sideId;
    }

    public String getSideId()
    {
        return sideId;
    }

    public void setLevel(Long level)
    {
        this.level = level;
    }

    public Long getLevel()
    {
        return level;
    }

    public void setLocateTime(Date locateTime)
    {
        this.locateTime = locateTime;
    }

    public Date getLocateTime()
    {
        return locateTime;
    }

    public void setUserIdentifier(String userIdentifier)
    {
        this.userIdentifier = userIdentifier;
    }

    public String getUserIdentifier()
    {
        return userIdentifier;
    }

    public void setIpAddress(String ipAddress)
    {
        this.ipAddress = ipAddress;
    }

    public String getIpAddress()
    {
        return ipAddress;
    }

    public void setLocation(String location)
    {
        this.location = location;
    }

    public String getLocation()
    {
        return location;
    }

    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public String getBrand()
    {
        return brand;
    }

    public void setModel(String model)
    {
        this.model = model;
    }

    public String getModel()
    {
        return model;
    }

    public void setOsName(String osName)
    {
        this.osName = osName;
    }

    public String getOsName()
    {
        return osName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("journalCode", getJournalCode())
            .append("shelfId", getShelfId())
            .append("sideId", getSideId())
            .append("level", getLevel())
            .append("locateTime", getLocateTime())
            .append("userIdentifier", getUserIdentifier())
            .append("ipAddress", getIpAddress())
            .append("location", getLocation())
            .append("brand", getBrand())
            .append("model", getModel())
            .append("osName", getOsName())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}

